/**
 * @description 链表节点
 * @class {BaseLinkedListNodeModel}
 * @author hhx
 * @date 2024-11-13 08:11
 * @version 0.1.2
 */
export class BaseLinkedListNodeModel {

    /**
     * @description 链表节点值
     * @pravite
     * @property
     * @type {*} 节点值类型
     */
    _value = undefined;

    /**
     * @description 链表下一个域
     * @pravite
     * @property
     * @type {object} 链表下一个节点
     */
    _next = null;

    /**
     * @description 链表节点构造方法
     * @public
     * @constructor
     * @param value {string|number} 链表值
     */
    constructor(value) {
        this.value = value;
    }

    //========================== 内部属性 ==========================

    /**
     * @description 获取 节点值
     * @property
     * @protected
     * @return {string|number} 节点值
     */
    get value() {
        return this._value;
    }

    /**
     * @description 设置 节点值
     * @property
     * @protected
     * @param value {number|string} 设置的节点值
     */
    set value(value) {
        this._value = value;
    }

    /**
     * @description 获取 下一个域
     * @property
     * @protected
     * @return {object} 下一个域
     */
    get next() {
        return this._next;
    }

    /**
     * @description 设置 下一个域
     * @property
     * @protected
     * @param value {object} 下一个域的值
     */
    set next(value) {
        return this._next = value;
    }

    //========================== 属性方法 ==========================

    /**
     * @description 获取节点值
     * @public
     * @return {string|number} 节点值
     */
    getValue() {
        return this.value;
    }

    /**
     * @description 设置节点值
     * @public
     * @param value {number|string} 节点值
     */
    setValue(value) {
        this.value = value;
    }

    /**
     * @description 获取域值
     * @property
     * @protected
     * @return {object} 域值
     */
    getNext() {
        return this.next;
    }

    /**
     * @description 设置 域值
     * @property
     * @protected
     * @param value {object} 设置域值
     */
    setNext(value) {
        this.next = value;
    }

    //========================== 接口 ==========================
}